package com.learn.sqlsession;

import com.learn.pojo.Configuration;
import com.learn.pojo.MappedStatement;

import java.sql.SQLException;
import java.util.List;

public interface Executor {

    /**
     * @param configuration   数据源以及 SQL 配置信息
     * @param mappedStatement 本次查询基于的 MappedStatement 对象
     * @param params          本次查询传入的参数
     * @param <E>             查询返回值类型
     * @return 查询返回的集合
     */
    <E> List<E> query(Configuration configuration, MappedStatement mappedStatement, Object... params) throws Exception;

    void close() throws SQLException;
}
